<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="./lib/axios.min.js"></script>
</head>

<body>
    <button id="send">发送请求</button>
    <button id="cancel">取消请求请求</button>
    <script>
        axios.defaults.baseURL = 'http://127.0.0.1:3000';

        // 定义一个控制对象
        // const controller = new AbortController();
        // send.onclick = async function () {
        //     // 配置对象的信息
        //     try {
        //         const res = await axios.get('/users', {
        //             signal: controller.signal
        //         })
        //         console.log(res.data);
        //     } catch (e) {
        //         console.log(e);
        //     }
        // }
        // cancel.onclick = function () {
        //     // 调用对象的终止命令
        //     controller.abort()
        // }

        const CancelToken = axios.CancelToken;
        let cancelBtn;

        send.onclick = function () {
            axios.get('/users', {
                cancelToken: new CancelToken(function executor(c) {
                    // executor 函数接收一个 cancel 函数作为参数
                    cancelBtn = c;
                })
            })
                .then(data => {
                    console.log(data);
                })
                .catch(err => {
                    console.log(err);
                })
        }

        cancel.onclick = function () {
            cancelBtn();
        }

    </script>
</body>

</html>